/*============================================================================*/
/*                   CONTINENTAL AUTOMOTIVE SYSTEMS                           */
/*============================================================================*/
/*                        OBJECT SPECIFICATION                                */
/*============================================================================*
* name:            sysinit.c
* version:         1.1
* created_by:      Rodrigo Casados
* date_created:    June 7 2013
*=============================================================================*/
/* DESCRIPTION : Source file to implement main function.                      */
/*============================================================================*/
/* FUNCTION COMMENT : Implements entry point (main function) and other        */
/* application stuff.                                                         */
/*                                                                            */
/*============================================================================*/
/*                               OBJECT HISTORY                               */
/*============================================================================*/
/*  REVISION |   DATE      |                               |      AUTHOR      */
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
/*  1.1      | 7/June/2013 |                               | Rodrigo Casados */
/* Initial version for the Smart Car Race 2010 contest using Freescale        */
/* Bolero micro.                                                              */
/*============================================================================*/

/* Includes */
/* -------- */
#include "stdtypedef.h"

#include "MALioapi.h"

void Init_Ports(void)
{
//Configure PortA pins as GPIO.
IO_SetPinFctn(pin_PA0,PA_GPIO);
IO_SetPinFctn(pin_PA1,PA_GPIO);
IO_SetPinFctn(pin_PA2,PA_GPIO);
IO_SetPinFctn(pin_PA3,PA_GPIO);
IO_SetPinFctn(pin_PA4,PA_GPIO);
IO_SetPinFctn(pin_PA5,PA_GPIO);
IO_SetPinFctn(pin_PA6,PA_GPIO);
IO_SetPinFctn(pin_PA7,PA_GPIO);
IO_SetPinFctn(pin_PA8,PA_GPIO);
IO_SetPinFctn(pin_PA9,PA_GPIO);
IO_SetPinFctn(pin_PA14,PA_GPIO);
IO_SetPinFctn(pin_PA15,PA_GPIO);

//Configure PortA pin as output.
IO_SetPinAsOutput(pin_PA0);
IO_SetPinAsOutput(pin_PA1);
IO_SetPinAsOutput(pin_PA2);
IO_SetPinAsOutput(pin_PA3);
IO_SetPinAsOutput(pin_PA4);
IO_SetPinAsOutput(pin_PA5);
IO_SetPinAsOutput(pin_PA6);
IO_SetPinAsOutput(pin_PA7);
IO_SetPinAsOutput(pin_PA8);
IO_SetPinAsOutput(pin_PA9);

//turn on clock to Port A  
 //SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;  	
}
void Init_Btn(void)
{
//Configure Btn's as GPIO.
IO_SetPinFctn(pin_PE0,PA_GPIO);
IO_SetPinFctn(pin_PE1,PA_GPIO);
IO_SetPinFctn(pin_PE2,PA_GPIO);
IO_SetPinFctn(pin_PE3,PA_GPIO);

//Configure Bttn as input.
IO_SetPinAsInput(pin_PE0);
IO_SetPinAsInput(pin_PE1);
IO_SetPinAsInput(pin_PE2);
IO_SetPinAsInput(pin_PE3);
	
}
void Init_LED(void)
{
//Configure LED's as GPIO.
IO_SetPinFctn(pin_PE4,PA_GPIO);
IO_SetPinFctn(pin_PE5,PA_GPIO);
IO_SetPinFctn(pin_PE6,PA_GPIO);
IO_SetPinFctn(pin_PE7,PA_GPIO);
//Configure LED's as output.
IO_SetPinAsOutput(pin_PE4);
IO_SetPinAsOutput(pin_PE5);
IO_SetPinAsOutput(pin_PE6);
IO_SetPinAsOutput(pin_PE7);
//Turn Off leds.(In this case Leds are turned OFF with '1' Due Board cfg)
IO_PinWrite(pin_PE4,1); 
IO_PinWrite(pin_PE5,1);
IO_PinWrite(pin_PE6,1);
IO_PinWrite(pin_PE7,1);
}


void Init_Ports2(void)
{
//Configure PortA pins as GPIO.
IO_SetPinFctn(pin_PA1,PA_GPIO);
IO_SetPinFctn(pin_PA3,PA_GPIO);
IO_SetPinFctn(pin_PA5,PA_GPIO);
IO_SetPinFctn(pin_PA7,PA_GPIO);
IO_SetPinFctn(pin_PA9,PA_GPIO);
IO_SetPinFctn(pin_PA11,PA_GPIO);
IO_SetPinFctn(pin_PA13,PA_GPIO);

//Configure PortA pin as output.
IO_SetPinAsOutput(pin_PA1);
IO_SetPinAsOutput(pin_PA3);
IO_SetPinAsOutput(pin_PA5);
IO_SetPinAsOutput(pin_PA7);
IO_SetPinAsOutput(pin_PA9);
IO_SetPinAsOutput(pin_PA11);
IO_SetPinAsOutput(pin_PA13);
	
}